﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SDMX_Common = SDMX_ML.Framework.Common;

namespace SDMX_ML.Framework.Structure
{
    /// <summary>
    /// CodeRefType.
    /// </summary>
    public class CodeRefType
    {
        private string _urn;
        private string _version;
        private string _validFrom;
        private string _validTo;
        private SDMX_Common.IDType _codelistAliasRef;
        private SDMX_Common.IDType _codeID;
        private List<CodeRefType> _codeRefType;
        private SDMX_Common.IDType _levelRef;
        private string _nodeAliasID;

        /// <summary>
        /// CodeRefType.
        /// </summary>
        public CodeRefType()
        {
            _codeRefType = new List<CodeRefType>();
        }

        public string Urn
        {
            get { return _urn; }
            set { _urn = value; }
        }
  
        /// <summary>
        /// CodelistAliasRef.
        /// </summary>
        public SDMX_Common.IDType CodelistAliasRef
        {
            get { return _codelistAliasRef; }
            set { _codelistAliasRef = value; }
        }
  
        /// <summary>
        /// CodeID.
        /// </summary>
        public SDMX_Common.IDType CodeID
        {
            get { return _codeID; }
            set { _codeID = value; }
        }
  
        /// <summary>
        /// CodeRefType1.
        /// </summary>
        public List<CodeRefType> CodeRefType1
        {
            get { return _codeRefType; }
            set { _codeRefType = value; }
        }
        
        /// <summary>
        /// LevelRef.
        /// </summary>
        public SDMX_Common.IDType LevelRef
        {
            get { return _levelRef; }
            set { _levelRef = value; }
        }
  
        /// <summary>
        /// NodeAliasID.
        /// </summary>
        public string NodeAliasID
        {
            get { return _nodeAliasID; }
            set { _nodeAliasID = value; }
        }
        
        /// <summary>
        /// Version.
        /// </summary>
        public string Version
        {
            get { return _version; }
            set { _version = value; }
        }
        
        /// <summary>
        /// ValidFrom.
        /// </summary>
        public string ValidFrom
        {
            get { return _validFrom; }
            set { _validFrom = value; }
        }
  
        /// <summary>
        /// ValidTo.
        /// </summary>
        public string ValidTo
        {
            get { return _validTo; }
            set { _validTo = value; }
        }
    }
}
